#ifndef REQUEST_H_
#define REQUEST_H_

#include "DBRegister.h"

#include <iostream>

#define MTYPE_SERVER 	1

enum command_type {
	result_ok = 0,		// solicitud realizada exitosamente
	result_error,		// error: en la solicitud
	result_exists,		// error: el registro ya existe
	result_invalid,		// error: comando invalido
	result_server_error,	// error: error en la comunicación con el servidor o el servidor está desconectado
	request_get = 0,	// obtener un registro de la base de datos
	request_insert,		// insertar un registro en la base de datos
	request_update,		// modificar un registro en la base de datos
	request_remove		// remover un registro de la base de datos
};


/* estructura de los msj. Segun cada comando se utilizan distintos campos */
struct Message {
	long 		mtype;
	long 		dst_mtype;
	int			cmd;
	DBRegister	reg;

public:
	void print() {
		std::cout<<"\t-- Mensaje --"<<std::endl;
		std::cout<<"\t >> destino: \t"	<< mtype	<<std::endl;
		std::cout<<"\t >> origen: \t"	<< dst_mtype<<std::endl;
		std::cout<<"\t >> comando: \t"	<< cmd		<<std::endl;
	}
};

#endif /* REQUEST_H_ */
